//-------------------------------------------------------------------
//	Copyright (c) 2010-2012  Zhirnov Andrey
//	This file is part of the "UXGEN" project.
//	See copyright notice in "Engine.h".
//-------------------------------------------------------------------

#ifndef _UX_GUI_WIDGET_STYLE_H
#define _UX_GUI_WIDGET_STYLE_H

#include "Messages.h"

namespace Engine
{
namespace GUI
{


	//
	// GUI Widget Style
	//

	class _EXPORT_ CWidgetStyle : public IWidgetStyle
	{
	protected:
		string					_sName;

	private:
		static CMetaClass		_s_cMetaWidgetStyle;
		static const string		_s_sWidgetStyleTypename;
		
	protected:
		CWidgetStyle();
		virtual ~CWidgetStyle();
		
		static bool CALLBACK _s_CreateWidgetStyle(CMetaSetIterator *&pIter, void *pParam, const char *pParams);

	public:
		static  void s_InitWidgetStyleMetaData();

		// IWidgetStyle //
		virtual bool ProcessMessage(TGUIStyleMessage &);
		virtual bool GetMetaIterator(CMetaSetIterator *&);


		// IGUIBaseObject //
		virtual void Free();
		virtual const string & GetTypeName() const	{ return _s_sWidgetStyleTypename; }
	};

//-------------------------------------------------------------------

}	// GUI
}	// Engine

#endif	// _UX_GUI_WIDGET_STYLE_H